<?php

require_once 'propel/om/BaseObject.php';

require_once 'propel/om/Persistent.php';


include_once 'propel/util/Criteria.php';

include_once 'classes/model/HrJobsPeer.php';

/**
 * Base class that represents a row from the 'HR_JOBS' table.
 *
 * 
 *
 * @package    workflow.classes.model.om
 */
abstract class BaseHrJobs extends BaseObject  implements Persistent {


	/**
	 * The Peer class.
	 * Instance provides a convenient way of calling static methods on a class
	 * that calling code may not be able to identify.
	 * @var        HrJobsPeer
	 */
	protected static $peer;


	/**
	 * The value for the job_uid field.
	 * @var        string
	 */
	protected $job_uid = '';


	/**
	 * The value for the employee_id field.
	 * @var        string
	 */
	protected $employee_id = '';


	/**
	 * The value for the position_id field.
	 * @var        string
	 */
	protected $position_id = '';


	/**
	 * The value for the boardhiredate field.
	 * @var        int
	 */
	protected $boardhiredate;


	/**
	 * The value for the typeofappointment_id field.
	 * @var        string
	 */
	protected $typeofappointment_id = '';


	/**
	 * The value for the typeemployee_id field.
	 * @var        string
	 */
	protected $typeemployee_id = '';


	/**
	 * The value for the jobtitle_id field.
	 * @var        string
	 */
	protected $jobtitle_id = '';


	/**
	 * The value for the typepay_id field.
	 * @var        string
	 */
	protected $typepay_id = '';


	/**
	 * The value for the fte field.
	 * @var        double
	 */
	protected $fte = 0;


	/**
	 * The value for the primaryirn field.
	 * @var        string
	 */
	protected $primaryirn = '';


	/**
	 * The value for the spreadpay field.
	 * @var        string
	 */
	protected $spreadpay = 'N';


	/**
	 * The value for the otherpay field.
	 * @var        double
	 */
	protected $otherpay = 0;


	/**
	 * The value for the locationirn field.
	 * @var        string
	 */
	protected $locationirn = '';


	/**
	 * The value for the jobassignment field.
	 * @var        string
	 */
	protected $jobassignment = '';


	/**
	 * The value for the jobstatus_id field.
	 * @var        string
	 */
	protected $jobstatus_id = '';


	/**
	 * The value for the terminationdate field.
	 * @var        int
	 */
	protected $terminationdate;


	/**
	 * The value for the projectterminationdate field.
	 * @var        int
	 */
	protected $projectterminationdate;


	/**
	 * The value for the payunit_id field.
	 * @var        string
	 */
	protected $payunit_id = '';


	/**
	 * The value for the unitamount field.
	 * @var        double
	 */
	protected $unitamount = 0;


	/**
	 * The value for the payplan_id field.
	 * @var        string
	 */
	protected $payplan_id = '';


	/**
	 * The value for the hoursinday field.
	 * @var        double
	 */
	protected $hoursinday = 0;


	/**
	 * The value for the daysinperiod field.
	 * @var        double
	 */
	protected $daysinperiod = 0;


	/**
	 * The value for the numberofpays field.
	 * @var        int
	 */
	protected $numberofpays = 0;


	/**
	 * The value for the functions field.
	 * @var        string
	 */
	protected $functions = '';


	/**
	 * The value for the fund field.
	 * @var        string
	 */
	protected $fund = '';


	/**
	 * The value for the object field.
	 * @var        string
	 */
	protected $object = '';


	/**
	 * The value for the opu field.
	 * @var        string
	 */
	protected $opu = '';


	/**
	 * The value for the specialcostcenter field.
	 * @var        string
	 */
	protected $specialcostcenter = '';


	/**
	 * The value for the subject field.
	 * @var        string
	 */
	protected $subject = '';


	/**
	 * The value for the fundsourcecode1 field.
	 * @var        string
	 */
	protected $fundsourcecode1 = '';


	/**
	 * The value for the fundsourcecode1p field.
	 * @var        double
	 */
	protected $fundsourcecode1p = 0;


	/**
	 * The value for the fundsourcecode2 field.
	 * @var        string
	 */
	protected $fundsourcecode2 = '';


	/**
	 * The value for the fundsourcecode2p field.
	 * @var        double
	 */
	protected $fundsourcecode2p = 0;


	/**
	 * The value for the fundsourcecode3 field.
	 * @var        string
	 */
	protected $fundsourcecode3 = '';


	/**
	 * The value for the fundsourcecode3p field.
	 * @var        double
	 */
	protected $fundsourcecode3p = 0;


	/**
	 * The value for the instructionallevel field.
	 * @var        string
	 */
	protected $instructionallevel = '';

	/**
	 * Flag to prevent endless save loop, if this object is referenced
	 * by another object which falls in this transaction.
	 * @var        boolean
	 */
	protected $alreadyInSave = false;

	/**
	 * Flag to prevent endless validation loop, if this object is referenced
	 * by another object which falls in this transaction.
	 * @var        boolean
	 */
	protected $alreadyInValidation = false;

	/**
	 * Get the [job_uid] column value.
	 * 
	 * @return     string
	 */
	public function getJobUid()
	{

		return $this->job_uid;
	}

	/**
	 * Get the [employee_id] column value.
	 * 
	 * @return     string
	 */
	public function getEmployeeId()
	{

		return $this->employee_id;
	}

	/**
	 * Get the [position_id] column value.
	 * 
	 * @return     string
	 */
	public function getPositionId()
	{

		return $this->position_id;
	}

	/**
	 * Get the [optionally formatted] [boardhiredate] column value.
	 * 
	 * @param      string $format The date/time format string (either date()-style or strftime()-style).
	 *							If format is NULL, then the integer unix timestamp will be returned.
	 * @return     mixed Formatted date/time value as string or integer unix timestamp (if format is NULL).
	 * @throws     PropelException - if unable to convert the date/time to timestamp.
	 */
	public function getBoardhiredate($format = 'Y-m-d')
	{

		if ($this->boardhiredate === null || $this->boardhiredate === '') {
			return null;
		} elseif (!is_int($this->boardhiredate)) {
			// a non-timestamp value was set externally, so we convert it
			$ts = strtotime($this->boardhiredate);
			if ($ts === -1 || $ts === false) { // in PHP 5.1 return value changes to FALSE
				throw new PropelException("Unable to parse value of [boardhiredate] as date/time value: " . var_export($this->boardhiredate, true));
			}
		} else {
			$ts = $this->boardhiredate;
		}
		if ($format === null) {
			return $ts;
		} elseif (strpos($format, '%') !== false) {
			return strftime($format, $ts);
		} else {
			return date($format, $ts);
		}
	}

	/**
	 * Get the [typeofappointment_id] column value.
	 * 
	 * @return     string
	 */
	public function getTypeofappointmentId()
	{

		return $this->typeofappointment_id;
	}

	/**
	 * Get the [typeemployee_id] column value.
	 * 
	 * @return     string
	 */
	public function getTypeemployeeId()
	{

		return $this->typeemployee_id;
	}

	/**
	 * Get the [jobtitle_id] column value.
	 * 
	 * @return     string
	 */
	public function getJobtitleId()
	{

		return $this->jobtitle_id;
	}

	/**
	 * Get the [typepay_id] column value.
	 * 
	 * @return     string
	 */
	public function getTypepayId()
	{

		return $this->typepay_id;
	}

	/**
	 * Get the [fte] column value.
	 * 
	 * @return     double
	 */
	public function getFte()
	{

		return $this->fte;
	}

	/**
	 * Get the [primaryirn] column value.
	 * 
	 * @return     string
	 */
	public function getPrimaryirn()
	{

		return $this->primaryirn;
	}

	/**
	 * Get the [spreadpay] column value.
	 * 
	 * @return     string
	 */
	public function getSpreadpay()
	{

		return $this->spreadpay;
	}

	/**
	 * Get the [otherpay] column value.
	 * 
	 * @return     double
	 */
	public function getOtherpay()
	{

		return $this->otherpay;
	}

	/**
	 * Get the [locationirn] column value.
	 * 
	 * @return     string
	 */
	public function getLocationirn()
	{

		return $this->locationirn;
	}

	/**
	 * Get the [jobassignment] column value.
	 * 
	 * @return     string
	 */
	public function getJobassignment()
	{

		return $this->jobassignment;
	}

	/**
	 * Get the [jobstatus_id] column value.
	 * 
	 * @return     string
	 */
	public function getJobstatusId()
	{

		return $this->jobstatus_id;
	}

	/**
	 * Get the [optionally formatted] [terminationdate] column value.
	 * 
	 * @param      string $format The date/time format string (either date()-style or strftime()-style).
	 *							If format is NULL, then the integer unix timestamp will be returned.
	 * @return     mixed Formatted date/time value as string or integer unix timestamp (if format is NULL).
	 * @throws     PropelException - if unable to convert the date/time to timestamp.
	 */
	public function getTerminationdate($format = 'Y-m-d')
	{

		if ($this->terminationdate === null || $this->terminationdate === '') {
			return null;
		} elseif (!is_int($this->terminationdate)) {
			// a non-timestamp value was set externally, so we convert it
			$ts = strtotime($this->terminationdate);
			if ($ts === -1 || $ts === false) { // in PHP 5.1 return value changes to FALSE
				throw new PropelException("Unable to parse value of [terminationdate] as date/time value: " . var_export($this->terminationdate, true));
			}
		} else {
			$ts = $this->terminationdate;
		}
		if ($format === null) {
			return $ts;
		} elseif (strpos($format, '%') !== false) {
			return strftime($format, $ts);
		} else {
			return date($format, $ts);
		}
	}

	/**
	 * Get the [optionally formatted] [projectterminationdate] column value.
	 * 
	 * @param      string $format The date/time format string (either date()-style or strftime()-style).
	 *							If format is NULL, then the integer unix timestamp will be returned.
	 * @return     mixed Formatted date/time value as string or integer unix timestamp (if format is NULL).
	 * @throws     PropelException - if unable to convert the date/time to timestamp.
	 */
	public function getProjectterminationdate($format = 'Y-m-d')
	{

		if ($this->projectterminationdate === null || $this->projectterminationdate === '') {
			return null;
		} elseif (!is_int($this->projectterminationdate)) {
			// a non-timestamp value was set externally, so we convert it
			$ts = strtotime($this->projectterminationdate);
			if ($ts === -1 || $ts === false) { // in PHP 5.1 return value changes to FALSE
				throw new PropelException("Unable to parse value of [projectterminationdate] as date/time value: " . var_export($this->projectterminationdate, true));
			}
		} else {
			$ts = $this->projectterminationdate;
		}
		if ($format === null) {
			return $ts;
		} elseif (strpos($format, '%') !== false) {
			return strftime($format, $ts);
		} else {
			return date($format, $ts);
		}
	}

	/**
	 * Get the [payunit_id] column value.
	 * 
	 * @return     string
	 */
	public function getPayunitId()
	{

		return $this->payunit_id;
	}

	/**
	 * Get the [unitamount] column value.
	 * 
	 * @return     double
	 */
	public function getUnitamount()
	{

		return $this->unitamount;
	}

	/**
	 * Get the [payplan_id] column value.
	 * 
	 * @return     string
	 */
	public function getPayplanId()
	{

		return $this->payplan_id;
	}

	/**
	 * Get the [hoursinday] column value.
	 * 
	 * @return     double
	 */
	public function getHoursinday()
	{

		return $this->hoursinday;
	}

	/**
	 * Get the [daysinperiod] column value.
	 * 
	 * @return     double
	 */
	public function getDaysinperiod()
	{

		return $this->daysinperiod;
	}

	/**
	 * Get the [numberofpays] column value.
	 * 
	 * @return     int
	 */
	public function getNumberofpays()
	{

		return $this->numberofpays;
	}

	/**
	 * Get the [functions] column value.
	 * 
	 * @return     string
	 */
	public function getFunctions()
	{

		return $this->functions;
	}

	/**
	 * Get the [fund] column value.
	 * 
	 * @return     string
	 */
	public function getFund()
	{

		return $this->fund;
	}

	/**
	 * Get the [object] column value.
	 * 
	 * @return     string
	 */
	public function getObject()
	{

		return $this->object;
	}

	/**
	 * Get the [opu] column value.
	 * 
	 * @return     string
	 */
	public function getOpu()
	{

		return $this->opu;
	}

	/**
	 * Get the [specialcostcenter] column value.
	 * 
	 * @return     string
	 */
	public function getSpecialcostcenter()
	{

		return $this->specialcostcenter;
	}

	/**
	 * Get the [subject] column value.
	 * 
	 * @return     string
	 */
	public function getSubject()
	{

		return $this->subject;
	}

	/**
	 * Get the [fundsourcecode1] column value.
	 * 
	 * @return     string
	 */
	public function getFundsourcecode1()
	{

		return $this->fundsourcecode1;
	}

	/**
	 * Get the [fundsourcecode1p] column value.
	 * 
	 * @return     double
	 */
	public function getFundsourcecode1p()
	{

		return $this->fundsourcecode1p;
	}

	/**
	 * Get the [fundsourcecode2] column value.
	 * 
	 * @return     string
	 */
	public function getFundsourcecode2()
	{

		return $this->fundsourcecode2;
	}

	/**
	 * Get the [fundsourcecode2p] column value.
	 * 
	 * @return     double
	 */
	public function getFundsourcecode2p()
	{

		return $this->fundsourcecode2p;
	}

	/**
	 * Get the [fundsourcecode3] column value.
	 * 
	 * @return     string
	 */
	public function getFundsourcecode3()
	{

		return $this->fundsourcecode3;
	}

	/**
	 * Get the [fundsourcecode3p] column value.
	 * 
	 * @return     double
	 */
	public function getFundsourcecode3p()
	{

		return $this->fundsourcecode3p;
	}

	/**
	 * Get the [instructionallevel] column value.
	 * 
	 * @return     string
	 */
	public function getInstructionallevel()
	{

		return $this->instructionallevel;
	}

	/**
	 * Set the value of [job_uid] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setJobUid($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->job_uid !== $v || $v === '') {
			$this->job_uid = $v;
			$this->modifiedColumns[] = HrJobsPeer::JOB_UID;
		}

	} // setJobUid()

	/**
	 * Set the value of [employee_id] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setEmployeeId($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->employee_id !== $v || $v === '') {
			$this->employee_id = $v;
			$this->modifiedColumns[] = HrJobsPeer::EMPLOYEE_ID;
		}

	} // setEmployeeId()

	/**
	 * Set the value of [position_id] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setPositionId($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->position_id !== $v || $v === '') {
			$this->position_id = $v;
			$this->modifiedColumns[] = HrJobsPeer::POSITION_ID;
		}

	} // setPositionId()

	/**
	 * Set the value of [boardhiredate] column.
	 * 
	 * @param      int $v new value
	 * @return     void
	 */
	public function setBoardhiredate($v)
	{

		if ($v !== null && !is_int($v)) {
			$ts = strtotime($v);
			if ($ts === -1 || $ts === false) { // in PHP 5.1 return value changes to FALSE
				throw new PropelException("Unable to parse date/time value for [boardhiredate] from input: " . var_export($v, true));
			}
		} else {
			$ts = $v;
		}
		if ($this->boardhiredate !== $ts) {
			$this->boardhiredate = $ts;
			$this->modifiedColumns[] = HrJobsPeer::BOARDHIREDATE;
		}

	} // setBoardhiredate()

	/**
	 * Set the value of [typeofappointment_id] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setTypeofappointmentId($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->typeofappointment_id !== $v || $v === '') {
			$this->typeofappointment_id = $v;
			$this->modifiedColumns[] = HrJobsPeer::TYPEOFAPPOINTMENT_ID;
		}

	} // setTypeofappointmentId()

	/**
	 * Set the value of [typeemployee_id] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setTypeemployeeId($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->typeemployee_id !== $v || $v === '') {
			$this->typeemployee_id = $v;
			$this->modifiedColumns[] = HrJobsPeer::TYPEEMPLOYEE_ID;
		}

	} // setTypeemployeeId()

	/**
	 * Set the value of [jobtitle_id] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setJobtitleId($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->jobtitle_id !== $v || $v === '') {
			$this->jobtitle_id = $v;
			$this->modifiedColumns[] = HrJobsPeer::JOBTITLE_ID;
		}

	} // setJobtitleId()

	/**
	 * Set the value of [typepay_id] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setTypepayId($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->typepay_id !== $v || $v === '') {
			$this->typepay_id = $v;
			$this->modifiedColumns[] = HrJobsPeer::TYPEPAY_ID;
		}

	} // setTypepayId()

	/**
	 * Set the value of [fte] column.
	 * 
	 * @param      double $v new value
	 * @return     void
	 */
	public function setFte($v)
	{

		if ($this->fte !== $v || $v === 0) {
			$this->fte = $v;
			$this->modifiedColumns[] = HrJobsPeer::FTE;
		}

	} // setFte()

	/**
	 * Set the value of [primaryirn] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setPrimaryirn($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->primaryirn !== $v || $v === '') {
			$this->primaryirn = $v;
			$this->modifiedColumns[] = HrJobsPeer::PRIMARYIRN;
		}

	} // setPrimaryirn()

	/**
	 * Set the value of [spreadpay] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setSpreadpay($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->spreadpay !== $v || $v === 'N') {
			$this->spreadpay = $v;
			$this->modifiedColumns[] = HrJobsPeer::SPREADPAY;
		}

	} // setSpreadpay()

	/**
	 * Set the value of [otherpay] column.
	 * 
	 * @param      double $v new value
	 * @return     void
	 */
	public function setOtherpay($v)
	{

		if ($this->otherpay !== $v || $v === 0) {
			$this->otherpay = $v;
			$this->modifiedColumns[] = HrJobsPeer::OTHERPAY;
		}

	} // setOtherpay()

	/**
	 * Set the value of [locationirn] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setLocationirn($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->locationirn !== $v || $v === '') {
			$this->locationirn = $v;
			$this->modifiedColumns[] = HrJobsPeer::LOCATIONIRN;
		}

	} // setLocationirn()

	/**
	 * Set the value of [jobassignment] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setJobassignment($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->jobassignment !== $v || $v === '') {
			$this->jobassignment = $v;
			$this->modifiedColumns[] = HrJobsPeer::JOBASSIGNMENT;
		}

	} // setJobassignment()

	/**
	 * Set the value of [jobstatus_id] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setJobstatusId($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->jobstatus_id !== $v || $v === '') {
			$this->jobstatus_id = $v;
			$this->modifiedColumns[] = HrJobsPeer::JOBSTATUS_ID;
		}

	} // setJobstatusId()

	/**
	 * Set the value of [terminationdate] column.
	 * 
	 * @param      int $v new value
	 * @return     void
	 */
	public function setTerminationdate($v)
	{

		if ($v !== null && !is_int($v)) {
			$ts = strtotime($v);
			if ($ts === -1 || $ts === false) { // in PHP 5.1 return value changes to FALSE
				throw new PropelException("Unable to parse date/time value for [terminationdate] from input: " . var_export($v, true));
			}
		} else {
			$ts = $v;
		}
		if ($this->terminationdate !== $ts) {
			$this->terminationdate = $ts;
			$this->modifiedColumns[] = HrJobsPeer::TERMINATIONDATE;
		}

	} // setTerminationdate()

	/**
	 * Set the value of [projectterminationdate] column.
	 * 
	 * @param      int $v new value
	 * @return     void
	 */
	public function setProjectterminationdate($v)
	{

		if ($v !== null && !is_int($v)) {
			$ts = strtotime($v);
			if ($ts === -1 || $ts === false) { // in PHP 5.1 return value changes to FALSE
				throw new PropelException("Unable to parse date/time value for [projectterminationdate] from input: " . var_export($v, true));
			}
		} else {
			$ts = $v;
		}
		if ($this->projectterminationdate !== $ts) {
			$this->projectterminationdate = $ts;
			$this->modifiedColumns[] = HrJobsPeer::PROJECTTERMINATIONDATE;
		}

	} // setProjectterminationdate()

	/**
	 * Set the value of [payunit_id] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setPayunitId($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->payunit_id !== $v || $v === '') {
			$this->payunit_id = $v;
			$this->modifiedColumns[] = HrJobsPeer::PAYUNIT_ID;
		}

	} // setPayunitId()

	/**
	 * Set the value of [unitamount] column.
	 * 
	 * @param      double $v new value
	 * @return     void
	 */
	public function setUnitamount($v)
	{

		if ($this->unitamount !== $v || $v === 0) {
			$this->unitamount = $v;
			$this->modifiedColumns[] = HrJobsPeer::UNITAMOUNT;
		}

	} // setUnitamount()

	/**
	 * Set the value of [payplan_id] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setPayplanId($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->payplan_id !== $v || $v === '') {
			$this->payplan_id = $v;
			$this->modifiedColumns[] = HrJobsPeer::PAYPLAN_ID;
		}

	} // setPayplanId()

	/**
	 * Set the value of [hoursinday] column.
	 * 
	 * @param      double $v new value
	 * @return     void
	 */
	public function setHoursinday($v)
	{

		if ($this->hoursinday !== $v || $v === 0) {
			$this->hoursinday = $v;
			$this->modifiedColumns[] = HrJobsPeer::HOURSINDAY;
		}

	} // setHoursinday()

	/**
	 * Set the value of [daysinperiod] column.
	 * 
	 * @param      double $v new value
	 * @return     void
	 */
	public function setDaysinperiod($v)
	{

		if ($this->daysinperiod !== $v || $v === 0) {
			$this->daysinperiod = $v;
			$this->modifiedColumns[] = HrJobsPeer::DAYSINPERIOD;
		}

	} // setDaysinperiod()

	/**
	 * Set the value of [numberofpays] column.
	 * 
	 * @param      int $v new value
	 * @return     void
	 */
	public function setNumberofpays($v)
	{

		// Since the native PHP type for this column is integer,
		// we will cast the input value to an int (if it is not).
		if ($v !== null && !is_int($v) && is_numeric($v)) {
			$v = (int) $v;
		}

		if ($this->numberofpays !== $v || $v === 0) {
			$this->numberofpays = $v;
			$this->modifiedColumns[] = HrJobsPeer::NUMBEROFPAYS;
		}

	} // setNumberofpays()

	/**
	 * Set the value of [functions] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setFunctions($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->functions !== $v || $v === '') {
			$this->functions = $v;
			$this->modifiedColumns[] = HrJobsPeer::FUNCTIONS;
		}

	} // setFunctions()

	/**
	 * Set the value of [fund] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setFund($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->fund !== $v || $v === '') {
			$this->fund = $v;
			$this->modifiedColumns[] = HrJobsPeer::FUND;
		}

	} // setFund()

	/**
	 * Set the value of [object] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setObject($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->object !== $v || $v === '') {
			$this->object = $v;
			$this->modifiedColumns[] = HrJobsPeer::OBJECT;
		}

	} // setObject()

	/**
	 * Set the value of [opu] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setOpu($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->opu !== $v || $v === '') {
			$this->opu = $v;
			$this->modifiedColumns[] = HrJobsPeer::OPU;
		}

	} // setOpu()

	/**
	 * Set the value of [specialcostcenter] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setSpecialcostcenter($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->specialcostcenter !== $v || $v === '') {
			$this->specialcostcenter = $v;
			$this->modifiedColumns[] = HrJobsPeer::SPECIALCOSTCENTER;
		}

	} // setSpecialcostcenter()

	/**
	 * Set the value of [subject] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setSubject($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->subject !== $v || $v === '') {
			$this->subject = $v;
			$this->modifiedColumns[] = HrJobsPeer::SUBJECT;
		}

	} // setSubject()

	/**
	 * Set the value of [fundsourcecode1] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setFundsourcecode1($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->fundsourcecode1 !== $v || $v === '') {
			$this->fundsourcecode1 = $v;
			$this->modifiedColumns[] = HrJobsPeer::FUNDSOURCECODE1;
		}

	} // setFundsourcecode1()

	/**
	 * Set the value of [fundsourcecode1p] column.
	 * 
	 * @param      double $v new value
	 * @return     void
	 */
	public function setFundsourcecode1p($v)
	{

		if ($this->fundsourcecode1p !== $v || $v === 0) {
			$this->fundsourcecode1p = $v;
			$this->modifiedColumns[] = HrJobsPeer::FUNDSOURCECODE1P;
		}

	} // setFundsourcecode1p()

	/**
	 * Set the value of [fundsourcecode2] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setFundsourcecode2($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->fundsourcecode2 !== $v || $v === '') {
			$this->fundsourcecode2 = $v;
			$this->modifiedColumns[] = HrJobsPeer::FUNDSOURCECODE2;
		}

	} // setFundsourcecode2()

	/**
	 * Set the value of [fundsourcecode2p] column.
	 * 
	 * @param      double $v new value
	 * @return     void
	 */
	public function setFundsourcecode2p($v)
	{

		if ($this->fundsourcecode2p !== $v || $v === 0) {
			$this->fundsourcecode2p = $v;
			$this->modifiedColumns[] = HrJobsPeer::FUNDSOURCECODE2P;
		}

	} // setFundsourcecode2p()

	/**
	 * Set the value of [fundsourcecode3] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setFundsourcecode3($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->fundsourcecode3 !== $v || $v === '') {
			$this->fundsourcecode3 = $v;
			$this->modifiedColumns[] = HrJobsPeer::FUNDSOURCECODE3;
		}

	} // setFundsourcecode3()

	/**
	 * Set the value of [fundsourcecode3p] column.
	 * 
	 * @param      double $v new value
	 * @return     void
	 */
	public function setFundsourcecode3p($v)
	{

		if ($this->fundsourcecode3p !== $v || $v === 0) {
			$this->fundsourcecode3p = $v;
			$this->modifiedColumns[] = HrJobsPeer::FUNDSOURCECODE3P;
		}

	} // setFundsourcecode3p()

	/**
	 * Set the value of [instructionallevel] column.
	 * 
	 * @param      string $v new value
	 * @return     void
	 */
	public function setInstructionallevel($v)
	{

		// Since the native PHP type for this column is string,
		// we will cast the input to a string (if it is not).
		if ($v !== null && !is_string($v)) {
			$v = (string) $v; 
		}

		if ($this->instructionallevel !== $v || $v === '') {
			$this->instructionallevel = $v;
			$this->modifiedColumns[] = HrJobsPeer::INSTRUCTIONALLEVEL;
		}

	} // setInstructionallevel()

	/**
	 * Hydrates (populates) the object variables with values from the database resultset.
	 *
	 * An offset (1-based "start column") is specified so that objects can be hydrated
	 * with a subset of the columns in the resultset rows.  This is needed, for example,
	 * for results of JOIN queries where the resultset row includes columns from two or
	 * more tables.
	 *
	 * @param      ResultSet $rs The ResultSet class with cursor advanced to desired record pos.
	 * @param      int $startcol 1-based offset column which indicates which restultset column to start with.
	 * @return     int next starting column
	 * @throws     PropelException  - Any caught Exception will be rewrapped as a PropelException.
	 */
	public function hydrate(ResultSet $rs, $startcol = 1)
	{
		try {

			$this->job_uid = $rs->getString($startcol + 0);

			$this->employee_id = $rs->getString($startcol + 1);

			$this->position_id = $rs->getString($startcol + 2);

			$this->boardhiredate = $rs->getDate($startcol + 3, null);

			$this->typeofappointment_id = $rs->getString($startcol + 4);

			$this->typeemployee_id = $rs->getString($startcol + 5);

			$this->jobtitle_id = $rs->getString($startcol + 6);

			$this->typepay_id = $rs->getString($startcol + 7);

			$this->fte = $rs->getFloat($startcol + 8);

			$this->primaryirn = $rs->getString($startcol + 9);

			$this->spreadpay = $rs->getString($startcol + 10);

			$this->otherpay = $rs->getFloat($startcol + 11);

			$this->locationirn = $rs->getString($startcol + 12);

			$this->jobassignment = $rs->getString($startcol + 13);

			$this->jobstatus_id = $rs->getString($startcol + 14);

			$this->terminationdate = $rs->getDate($startcol + 15, null);

			$this->projectterminationdate = $rs->getDate($startcol + 16, null);

			$this->payunit_id = $rs->getString($startcol + 17);

			$this->unitamount = $rs->getFloat($startcol + 18);

			$this->payplan_id = $rs->getString($startcol + 19);

			$this->hoursinday = $rs->getFloat($startcol + 20);

			$this->daysinperiod = $rs->getFloat($startcol + 21);

			$this->numberofpays = $rs->getInt($startcol + 22);

			$this->functions = $rs->getString($startcol + 23);

			$this->fund = $rs->getString($startcol + 24);

			$this->object = $rs->getString($startcol + 25);

			$this->opu = $rs->getString($startcol + 26);

			$this->specialcostcenter = $rs->getString($startcol + 27);

			$this->subject = $rs->getString($startcol + 28);

			$this->fundsourcecode1 = $rs->getString($startcol + 29);

			$this->fundsourcecode1p = $rs->getFloat($startcol + 30);

			$this->fundsourcecode2 = $rs->getString($startcol + 31);

			$this->fundsourcecode2p = $rs->getFloat($startcol + 32);

			$this->fundsourcecode3 = $rs->getString($startcol + 33);

			$this->fundsourcecode3p = $rs->getFloat($startcol + 34);

			$this->instructionallevel = $rs->getString($startcol + 35);

			$this->resetModified();

			$this->setNew(false);

			// FIXME - using NUM_COLUMNS may be clearer.
			return $startcol + 36; // 36 = HrJobsPeer::NUM_COLUMNS - HrJobsPeer::NUM_LAZY_LOAD_COLUMNS).

		} catch (Exception $e) {
			throw new PropelException("Error populating HrJobs object", $e);
		}
	}

	/**
	 * Removes this object from datastore and sets delete attribute.
	 *
	 * @param      Connection $con
	 * @return     void
	 * @throws     PropelException
	 * @see        BaseObject::setDeleted()
	 * @see        BaseObject::isDeleted()
	 */
	public function delete($con = null)
	{
		if ($this->isDeleted()) {
			throw new PropelException("This object has already been deleted.");
		}

		if ($con === null) {
			$con = Propel::getConnection(HrJobsPeer::DATABASE_NAME);
		}

		try {
			$con->begin();
			HrJobsPeer::doDelete($this, $con);
			$this->setDeleted(true);
			$con->commit();
		} catch (PropelException $e) {
			$con->rollback();
			throw $e;
		}
	}

	/**
	 * Stores the object in the database.  If the object is new,
	 * it inserts it; otherwise an update is performed.  This method
	 * wraps the doSave() worker method in a transaction.
	 *
	 * @param      Connection $con
	 * @return     int The number of rows affected by this insert/update and any referring fk objects' save() operations.
	 * @throws     PropelException
	 * @see        doSave()
	 */
	public function save($con = null)
	{
		if ($this->isDeleted()) {
			throw new PropelException("You cannot save an object that has been deleted.");
		}

		if ($con === null) {
			$con = Propel::getConnection(HrJobsPeer::DATABASE_NAME);
		}

		try {
			$con->begin();
			$affectedRows = $this->doSave($con);
			$con->commit();
			return $affectedRows;
		} catch (PropelException $e) {
			$con->rollback();
			throw $e;
		}
	}

	/**
	 * Stores the object in the database.
	 *
	 * If the object is new, it inserts it; otherwise an update is performed.
	 * All related objects are also updated in this method.
	 *
	 * @param      Connection $con
	 * @return     int The number of rows affected by this insert/update and any referring fk objects' save() operations.
	 * @throws     PropelException
	 * @see        save()
	 */
	protected function doSave($con)
	{
		$affectedRows = 0; // initialize var to track total num of affected rows
		if (!$this->alreadyInSave) {
			$this->alreadyInSave = true;


			// If this object has been modified, then save it to the database.
			if ($this->isModified()) {
				if ($this->isNew()) {
					$pk = HrJobsPeer::doInsert($this, $con);
					$affectedRows += 1; // we are assuming that there is only 1 row per doInsert() which
										 // should always be true here (even though technically
										 // BasePeer::doInsert() can insert multiple rows).

					$this->setNew(false);
				} else {
					$affectedRows += HrJobsPeer::doUpdate($this, $con);
				}
				$this->resetModified(); // [HL] After being saved an object is no longer 'modified'
			}

			$this->alreadyInSave = false;
		}
		return $affectedRows;
	} // doSave()

	/**
	 * Array of ValidationFailed objects.
	 * @var        array ValidationFailed[]
	 */
	protected $validationFailures = array();

	/**
	 * Gets any ValidationFailed objects that resulted from last call to validate().
	 *
	 *
	 * @return     array ValidationFailed[]
	 * @see        validate()
	 */
	public function getValidationFailures()
	{
		return $this->validationFailures;
	}

	/**
	 * Validates the objects modified field values and all objects related to this table.
	 *
	 * If $columns is either a column name or an array of column names
	 * only those columns are validated.
	 *
	 * @param      mixed $columns Column name or an array of column names.
	 * @return     boolean Whether all columns pass validation.
	 * @see        doValidate()
	 * @see        getValidationFailures()
	 */
	public function validate($columns = null)
	{
		$res = $this->doValidate($columns);
		if ($res === true) {
			$this->validationFailures = array();
			return true;
		} else {
			$this->validationFailures = $res;
			return false;
		}
	}

	/**
	 * This function performs the validation work for complex object models.
	 *
	 * In addition to checking the current object, all related objects will
	 * also be validated.  If all pass then <code>true</code> is returned; otherwise
	 * an aggreagated array of ValidationFailed objects will be returned.
	 *
	 * @param      array $columns Array of column names to validate.
	 * @return     mixed <code>true</code> if all validations pass; array of <code>ValidationFailed</code> objets otherwise.
	 */
	protected function doValidate($columns = null)
	{
		if (!$this->alreadyInValidation) {
			$this->alreadyInValidation = true;
			$retval = null;

			$failureMap = array();


			if (($retval = HrJobsPeer::doValidate($this, $columns)) !== true) {
				$failureMap = array_merge($failureMap, $retval);
			}



			$this->alreadyInValidation = false;
		}

		return (!empty($failureMap) ? $failureMap : true);
	}

	/**
	 * Retrieves a field from the object by name passed in as a string.
	 *
	 * @param      string $name name
	 * @param      string $type The type of fieldname the $name is of:
	 *                     one of the class type constants TYPE_PHPNAME,
	 *                     TYPE_COLNAME, TYPE_FIELDNAME, TYPE_NUM
	 * @return     mixed Value of field.
	 */
	public function getByName($name, $type = BasePeer::TYPE_PHPNAME)
	{
		$pos = HrJobsPeer::translateFieldName($name, $type, BasePeer::TYPE_NUM);
		return $this->getByPosition($pos);
	}

	/**
	 * Retrieves a field from the object by Position as specified in the xml schema.
	 * Zero-based.
	 *
	 * @param      int $pos position in xml schema
	 * @return     mixed Value of field at $pos
	 */
	public function getByPosition($pos)
	{
		switch($pos) {
			case 0:
				return $this->getJobUid();
				break;
			case 1:
				return $this->getEmployeeId();
				break;
			case 2:
				return $this->getPositionId();
				break;
			case 3:
				return $this->getBoardhiredate();
				break;
			case 4:
				return $this->getTypeofappointmentId();
				break;
			case 5:
				return $this->getTypeemployeeId();
				break;
			case 6:
				return $this->getJobtitleId();
				break;
			case 7:
				return $this->getTypepayId();
				break;
			case 8:
				return $this->getFte();
				break;
			case 9:
				return $this->getPrimaryirn();
				break;
			case 10:
				return $this->getSpreadpay();
				break;
			case 11:
				return $this->getOtherpay();
				break;
			case 12:
				return $this->getLocationirn();
				break;
			case 13:
				return $this->getJobassignment();
				break;
			case 14:
				return $this->getJobstatusId();
				break;
			case 15:
				return $this->getTerminationdate();
				break;
			case 16:
				return $this->getProjectterminationdate();
				break;
			case 17:
				return $this->getPayunitId();
				break;
			case 18:
				return $this->getUnitamount();
				break;
			case 19:
				return $this->getPayplanId();
				break;
			case 20:
				return $this->getHoursinday();
				break;
			case 21:
				return $this->getDaysinperiod();
				break;
			case 22:
				return $this->getNumberofpays();
				break;
			case 23:
				return $this->getFunctions();
				break;
			case 24:
				return $this->getFund();
				break;
			case 25:
				return $this->getObject();
				break;
			case 26:
				return $this->getOpu();
				break;
			case 27:
				return $this->getSpecialcostcenter();
				break;
			case 28:
				return $this->getSubject();
				break;
			case 29:
				return $this->getFundsourcecode1();
				break;
			case 30:
				return $this->getFundsourcecode1p();
				break;
			case 31:
				return $this->getFundsourcecode2();
				break;
			case 32:
				return $this->getFundsourcecode2p();
				break;
			case 33:
				return $this->getFundsourcecode3();
				break;
			case 34:
				return $this->getFundsourcecode3p();
				break;
			case 35:
				return $this->getInstructionallevel();
				break;
			default:
				return null;
				break;
		} // switch()
	}

	/**
	 * Exports the object as an array.
	 *
	 * You can specify the key type of the array by passing one of the class
	 * type constants.
	 *
	 * @param      string $keyType One of the class type constants TYPE_PHPNAME,
	 *                        TYPE_COLNAME, TYPE_FIELDNAME, TYPE_NUM
	 * @return     an associative array containing the field names (as keys) and field values
	 */
	public function toArray($keyType = BasePeer::TYPE_PHPNAME)
	{
		$keys = HrJobsPeer::getFieldNames($keyType);
		$result = array(
			$keys[0] => $this->getJobUid(),
			$keys[1] => $this->getEmployeeId(),
			$keys[2] => $this->getPositionId(),
			$keys[3] => $this->getBoardhiredate(),
			$keys[4] => $this->getTypeofappointmentId(),
			$keys[5] => $this->getTypeemployeeId(),
			$keys[6] => $this->getJobtitleId(),
			$keys[7] => $this->getTypepayId(),
			$keys[8] => $this->getFte(),
			$keys[9] => $this->getPrimaryirn(),
			$keys[10] => $this->getSpreadpay(),
			$keys[11] => $this->getOtherpay(),
			$keys[12] => $this->getLocationirn(),
			$keys[13] => $this->getJobassignment(),
			$keys[14] => $this->getJobstatusId(),
			$keys[15] => $this->getTerminationdate(),
			$keys[16] => $this->getProjectterminationdate(),
			$keys[17] => $this->getPayunitId(),
			$keys[18] => $this->getUnitamount(),
			$keys[19] => $this->getPayplanId(),
			$keys[20] => $this->getHoursinday(),
			$keys[21] => $this->getDaysinperiod(),
			$keys[22] => $this->getNumberofpays(),
			$keys[23] => $this->getFunctions(),
			$keys[24] => $this->getFund(),
			$keys[25] => $this->getObject(),
			$keys[26] => $this->getOpu(),
			$keys[27] => $this->getSpecialcostcenter(),
			$keys[28] => $this->getSubject(),
			$keys[29] => $this->getFundsourcecode1(),
			$keys[30] => $this->getFundsourcecode1p(),
			$keys[31] => $this->getFundsourcecode2(),
			$keys[32] => $this->getFundsourcecode2p(),
			$keys[33] => $this->getFundsourcecode3(),
			$keys[34] => $this->getFundsourcecode3p(),
			$keys[35] => $this->getInstructionallevel(),
		);
		return $result;
	}

	/**
	 * Sets a field from the object by name passed in as a string.
	 *
	 * @param      string $name peer name
	 * @param      mixed $value field value
	 * @param      string $type The type of fieldname the $name is of:
	 *                     one of the class type constants TYPE_PHPNAME,
	 *                     TYPE_COLNAME, TYPE_FIELDNAME, TYPE_NUM
	 * @return     void
	 */
	public function setByName($name, $value, $type = BasePeer::TYPE_PHPNAME)
	{
		$pos = HrJobsPeer::translateFieldName($name, $type, BasePeer::TYPE_NUM);
		return $this->setByPosition($pos, $value);
	}

	/**
	 * Sets a field from the object by Position as specified in the xml schema.
	 * Zero-based.
	 *
	 * @param      int $pos position in xml schema
	 * @param      mixed $value field value
	 * @return     void
	 */
	public function setByPosition($pos, $value)
	{
		switch($pos) {
			case 0:
				$this->setJobUid($value);
				break;
			case 1:
				$this->setEmployeeId($value);
				break;
			case 2:
				$this->setPositionId($value);
				break;
			case 3:
				$this->setBoardhiredate($value);
				break;
			case 4:
				$this->setTypeofappointmentId($value);
				break;
			case 5:
				$this->setTypeemployeeId($value);
				break;
			case 6:
				$this->setJobtitleId($value);
				break;
			case 7:
				$this->setTypepayId($value);
				break;
			case 8:
				$this->setFte($value);
				break;
			case 9:
				$this->setPrimaryirn($value);
				break;
			case 10:
				$this->setSpreadpay($value);
				break;
			case 11:
				$this->setOtherpay($value);
				break;
			case 12:
				$this->setLocationirn($value);
				break;
			case 13:
				$this->setJobassignment($value);
				break;
			case 14:
				$this->setJobstatusId($value);
				break;
			case 15:
				$this->setTerminationdate($value);
				break;
			case 16:
				$this->setProjectterminationdate($value);
				break;
			case 17:
				$this->setPayunitId($value);
				break;
			case 18:
				$this->setUnitamount($value);
				break;
			case 19:
				$this->setPayplanId($value);
				break;
			case 20:
				$this->setHoursinday($value);
				break;
			case 21:
				$this->setDaysinperiod($value);
				break;
			case 22:
				$this->setNumberofpays($value);
				break;
			case 23:
				$this->setFunctions($value);
				break;
			case 24:
				$this->setFund($value);
				break;
			case 25:
				$this->setObject($value);
				break;
			case 26:
				$this->setOpu($value);
				break;
			case 27:
				$this->setSpecialcostcenter($value);
				break;
			case 28:
				$this->setSubject($value);
				break;
			case 29:
				$this->setFundsourcecode1($value);
				break;
			case 30:
				$this->setFundsourcecode1p($value);
				break;
			case 31:
				$this->setFundsourcecode2($value);
				break;
			case 32:
				$this->setFundsourcecode2p($value);
				break;
			case 33:
				$this->setFundsourcecode3($value);
				break;
			case 34:
				$this->setFundsourcecode3p($value);
				break;
			case 35:
				$this->setInstructionallevel($value);
				break;
		} // switch()
	}

	/**
	 * Populates the object using an array.
	 *
	 * This is particularly useful when populating an object from one of the
	 * request arrays (e.g. $_POST).  This method goes through the column
	 * names, checking to see whether a matching key exists in populated
	 * array. If so the setByName() method is called for that column.
	 *
	 * You can specify the key type of the array by additionally passing one
	 * of the class type constants TYPE_PHPNAME, TYPE_COLNAME, TYPE_FIELDNAME,
	 * TYPE_NUM. The default key type is the column's phpname (e.g. 'authorId')
	 *
	 * @param      array  $arr     An array to populate the object from.
	 * @param      string $keyType The type of keys the array uses.
	 * @return     void
	 */
	public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME)
	{
		$keys = HrJobsPeer::getFieldNames($keyType);

		if (array_key_exists($keys[0], $arr)) $this->setJobUid($arr[$keys[0]]);
		if (array_key_exists($keys[1], $arr)) $this->setEmployeeId($arr[$keys[1]]);
		if (array_key_exists($keys[2], $arr)) $this->setPositionId($arr[$keys[2]]);
		if (array_key_exists($keys[3], $arr)) $this->setBoardhiredate($arr[$keys[3]]);
		if (array_key_exists($keys[4], $arr)) $this->setTypeofappointmentId($arr[$keys[4]]);
		if (array_key_exists($keys[5], $arr)) $this->setTypeemployeeId($arr[$keys[5]]);
		if (array_key_exists($keys[6], $arr)) $this->setJobtitleId($arr[$keys[6]]);
		if (array_key_exists($keys[7], $arr)) $this->setTypepayId($arr[$keys[7]]);
		if (array_key_exists($keys[8], $arr)) $this->setFte($arr[$keys[8]]);
		if (array_key_exists($keys[9], $arr)) $this->setPrimaryirn($arr[$keys[9]]);
		if (array_key_exists($keys[10], $arr)) $this->setSpreadpay($arr[$keys[10]]);
		if (array_key_exists($keys[11], $arr)) $this->setOtherpay($arr[$keys[11]]);
		if (array_key_exists($keys[12], $arr)) $this->setLocationirn($arr[$keys[12]]);
		if (array_key_exists($keys[13], $arr)) $this->setJobassignment($arr[$keys[13]]);
		if (array_key_exists($keys[14], $arr)) $this->setJobstatusId($arr[$keys[14]]);
		if (array_key_exists($keys[15], $arr)) $this->setTerminationdate($arr[$keys[15]]);
		if (array_key_exists($keys[16], $arr)) $this->setProjectterminationdate($arr[$keys[16]]);
		if (array_key_exists($keys[17], $arr)) $this->setPayunitId($arr[$keys[17]]);
		if (array_key_exists($keys[18], $arr)) $this->setUnitamount($arr[$keys[18]]);
		if (array_key_exists($keys[19], $arr)) $this->setPayplanId($arr[$keys[19]]);
		if (array_key_exists($keys[20], $arr)) $this->setHoursinday($arr[$keys[20]]);
		if (array_key_exists($keys[21], $arr)) $this->setDaysinperiod($arr[$keys[21]]);
		if (array_key_exists($keys[22], $arr)) $this->setNumberofpays($arr[$keys[22]]);
		if (array_key_exists($keys[23], $arr)) $this->setFunctions($arr[$keys[23]]);
		if (array_key_exists($keys[24], $arr)) $this->setFund($arr[$keys[24]]);
		if (array_key_exists($keys[25], $arr)) $this->setObject($arr[$keys[25]]);
		if (array_key_exists($keys[26], $arr)) $this->setOpu($arr[$keys[26]]);
		if (array_key_exists($keys[27], $arr)) $this->setSpecialcostcenter($arr[$keys[27]]);
		if (array_key_exists($keys[28], $arr)) $this->setSubject($arr[$keys[28]]);
		if (array_key_exists($keys[29], $arr)) $this->setFundsourcecode1($arr[$keys[29]]);
		if (array_key_exists($keys[30], $arr)) $this->setFundsourcecode1p($arr[$keys[30]]);
		if (array_key_exists($keys[31], $arr)) $this->setFundsourcecode2($arr[$keys[31]]);
		if (array_key_exists($keys[32], $arr)) $this->setFundsourcecode2p($arr[$keys[32]]);
		if (array_key_exists($keys[33], $arr)) $this->setFundsourcecode3($arr[$keys[33]]);
		if (array_key_exists($keys[34], $arr)) $this->setFundsourcecode3p($arr[$keys[34]]);
		if (array_key_exists($keys[35], $arr)) $this->setInstructionallevel($arr[$keys[35]]);
	}

	/**
	 * Build a Criteria object containing the values of all modified columns in this object.
	 *
	 * @return     Criteria The Criteria object containing all modified values.
	 */
	public function buildCriteria()
	{
		$criteria = new Criteria(HrJobsPeer::DATABASE_NAME);

		if ($this->isColumnModified(HrJobsPeer::JOB_UID)) $criteria->add(HrJobsPeer::JOB_UID, $this->job_uid);
		if ($this->isColumnModified(HrJobsPeer::EMPLOYEE_ID)) $criteria->add(HrJobsPeer::EMPLOYEE_ID, $this->employee_id);
		if ($this->isColumnModified(HrJobsPeer::POSITION_ID)) $criteria->add(HrJobsPeer::POSITION_ID, $this->position_id);
		if ($this->isColumnModified(HrJobsPeer::BOARDHIREDATE)) $criteria->add(HrJobsPeer::BOARDHIREDATE, $this->boardhiredate);
		if ($this->isColumnModified(HrJobsPeer::TYPEOFAPPOINTMENT_ID)) $criteria->add(HrJobsPeer::TYPEOFAPPOINTMENT_ID, $this->typeofappointment_id);
		if ($this->isColumnModified(HrJobsPeer::TYPEEMPLOYEE_ID)) $criteria->add(HrJobsPeer::TYPEEMPLOYEE_ID, $this->typeemployee_id);
		if ($this->isColumnModified(HrJobsPeer::JOBTITLE_ID)) $criteria->add(HrJobsPeer::JOBTITLE_ID, $this->jobtitle_id);
		if ($this->isColumnModified(HrJobsPeer::TYPEPAY_ID)) $criteria->add(HrJobsPeer::TYPEPAY_ID, $this->typepay_id);
		if ($this->isColumnModified(HrJobsPeer::FTE)) $criteria->add(HrJobsPeer::FTE, $this->fte);
		if ($this->isColumnModified(HrJobsPeer::PRIMARYIRN)) $criteria->add(HrJobsPeer::PRIMARYIRN, $this->primaryirn);
		if ($this->isColumnModified(HrJobsPeer::SPREADPAY)) $criteria->add(HrJobsPeer::SPREADPAY, $this->spreadpay);
		if ($this->isColumnModified(HrJobsPeer::OTHERPAY)) $criteria->add(HrJobsPeer::OTHERPAY, $this->otherpay);
		if ($this->isColumnModified(HrJobsPeer::LOCATIONIRN)) $criteria->add(HrJobsPeer::LOCATIONIRN, $this->locationirn);
		if ($this->isColumnModified(HrJobsPeer::JOBASSIGNMENT)) $criteria->add(HrJobsPeer::JOBASSIGNMENT, $this->jobassignment);
		if ($this->isColumnModified(HrJobsPeer::JOBSTATUS_ID)) $criteria->add(HrJobsPeer::JOBSTATUS_ID, $this->jobstatus_id);
		if ($this->isColumnModified(HrJobsPeer::TERMINATIONDATE)) $criteria->add(HrJobsPeer::TERMINATIONDATE, $this->terminationdate);
		if ($this->isColumnModified(HrJobsPeer::PROJECTTERMINATIONDATE)) $criteria->add(HrJobsPeer::PROJECTTERMINATIONDATE, $this->projectterminationdate);
		if ($this->isColumnModified(HrJobsPeer::PAYUNIT_ID)) $criteria->add(HrJobsPeer::PAYUNIT_ID, $this->payunit_id);
		if ($this->isColumnModified(HrJobsPeer::UNITAMOUNT)) $criteria->add(HrJobsPeer::UNITAMOUNT, $this->unitamount);
		if ($this->isColumnModified(HrJobsPeer::PAYPLAN_ID)) $criteria->add(HrJobsPeer::PAYPLAN_ID, $this->payplan_id);
		if ($this->isColumnModified(HrJobsPeer::HOURSINDAY)) $criteria->add(HrJobsPeer::HOURSINDAY, $this->hoursinday);
		if ($this->isColumnModified(HrJobsPeer::DAYSINPERIOD)) $criteria->add(HrJobsPeer::DAYSINPERIOD, $this->daysinperiod);
		if ($this->isColumnModified(HrJobsPeer::NUMBEROFPAYS)) $criteria->add(HrJobsPeer::NUMBEROFPAYS, $this->numberofpays);
		if ($this->isColumnModified(HrJobsPeer::FUNCTIONS)) $criteria->add(HrJobsPeer::FUNCTIONS, $this->functions);
		if ($this->isColumnModified(HrJobsPeer::FUND)) $criteria->add(HrJobsPeer::FUND, $this->fund);
		if ($this->isColumnModified(HrJobsPeer::OBJECT)) $criteria->add(HrJobsPeer::OBJECT, $this->object);
		if ($this->isColumnModified(HrJobsPeer::OPU)) $criteria->add(HrJobsPeer::OPU, $this->opu);
		if ($this->isColumnModified(HrJobsPeer::SPECIALCOSTCENTER)) $criteria->add(HrJobsPeer::SPECIALCOSTCENTER, $this->specialcostcenter);
		if ($this->isColumnModified(HrJobsPeer::SUBJECT)) $criteria->add(HrJobsPeer::SUBJECT, $this->subject);
		if ($this->isColumnModified(HrJobsPeer::FUNDSOURCECODE1)) $criteria->add(HrJobsPeer::FUNDSOURCECODE1, $this->fundsourcecode1);
		if ($this->isColumnModified(HrJobsPeer::FUNDSOURCECODE1P)) $criteria->add(HrJobsPeer::FUNDSOURCECODE1P, $this->fundsourcecode1p);
		if ($this->isColumnModified(HrJobsPeer::FUNDSOURCECODE2)) $criteria->add(HrJobsPeer::FUNDSOURCECODE2, $this->fundsourcecode2);
		if ($this->isColumnModified(HrJobsPeer::FUNDSOURCECODE2P)) $criteria->add(HrJobsPeer::FUNDSOURCECODE2P, $this->fundsourcecode2p);
		if ($this->isColumnModified(HrJobsPeer::FUNDSOURCECODE3)) $criteria->add(HrJobsPeer::FUNDSOURCECODE3, $this->fundsourcecode3);
		if ($this->isColumnModified(HrJobsPeer::FUNDSOURCECODE3P)) $criteria->add(HrJobsPeer::FUNDSOURCECODE3P, $this->fundsourcecode3p);
		if ($this->isColumnModified(HrJobsPeer::INSTRUCTIONALLEVEL)) $criteria->add(HrJobsPeer::INSTRUCTIONALLEVEL, $this->instructionallevel);

		return $criteria;
	}

	/**
	 * Builds a Criteria object containing the primary key for this object.
	 *
	 * Unlike buildCriteria() this method includes the primary key values regardless
	 * of whether or not they have been modified.
	 *
	 * @return     Criteria The Criteria object containing value(s) for primary key(s).
	 */
	public function buildPkeyCriteria()
	{
		$criteria = new Criteria(HrJobsPeer::DATABASE_NAME);

		$criteria->add(HrJobsPeer::JOB_UID, $this->job_uid);

		return $criteria;
	}

	/**
	 * Returns the primary key for this object (row).
	 * @return     string
	 */
	public function getPrimaryKey()
	{
		return $this->getJobUid();
	}

	/**
	 * Generic method to set the primary key (job_uid column).
	 *
	 * @param      string $key Primary key.
	 * @return     void
	 */
	public function setPrimaryKey($key)
	{
		$this->setJobUid($key);
	}

	/**
	 * Sets contents of passed object to values from current object.
	 *
	 * If desired, this method can also make copies of all associated (fkey referrers)
	 * objects.
	 *
	 * @param      object $copyObj An object of HrJobs (or compatible) type.
	 * @param      boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row.
	 * @throws     PropelException
	 */
	public function copyInto($copyObj, $deepCopy = false)
	{

		$copyObj->setEmployeeId($this->employee_id);

		$copyObj->setPositionId($this->position_id);

		$copyObj->setBoardhiredate($this->boardhiredate);

		$copyObj->setTypeofappointmentId($this->typeofappointment_id);

		$copyObj->setTypeemployeeId($this->typeemployee_id);

		$copyObj->setJobtitleId($this->jobtitle_id);

		$copyObj->setTypepayId($this->typepay_id);

		$copyObj->setFte($this->fte);

		$copyObj->setPrimaryirn($this->primaryirn);

		$copyObj->setSpreadpay($this->spreadpay);

		$copyObj->setOtherpay($this->otherpay);

		$copyObj->setLocationirn($this->locationirn);

		$copyObj->setJobassignment($this->jobassignment);

		$copyObj->setJobstatusId($this->jobstatus_id);

		$copyObj->setTerminationdate($this->terminationdate);

		$copyObj->setProjectterminationdate($this->projectterminationdate);

		$copyObj->setPayunitId($this->payunit_id);

		$copyObj->setUnitamount($this->unitamount);

		$copyObj->setPayplanId($this->payplan_id);

		$copyObj->setHoursinday($this->hoursinday);

		$copyObj->setDaysinperiod($this->daysinperiod);

		$copyObj->setNumberofpays($this->numberofpays);

		$copyObj->setFunctions($this->functions);

		$copyObj->setFund($this->fund);

		$copyObj->setObject($this->object);

		$copyObj->setOpu($this->opu);

		$copyObj->setSpecialcostcenter($this->specialcostcenter);

		$copyObj->setSubject($this->subject);

		$copyObj->setFundsourcecode1($this->fundsourcecode1);

		$copyObj->setFundsourcecode1p($this->fundsourcecode1p);

		$copyObj->setFundsourcecode2($this->fundsourcecode2);

		$copyObj->setFundsourcecode2p($this->fundsourcecode2p);

		$copyObj->setFundsourcecode3($this->fundsourcecode3);

		$copyObj->setFundsourcecode3p($this->fundsourcecode3p);

		$copyObj->setInstructionallevel($this->instructionallevel);


		$copyObj->setNew(true);

		$copyObj->setJobUid(''); // this is a pkey column, so set to default value

	}

	/**
	 * Makes a copy of this object that will be inserted as a new row in table when saved.
	 * It creates a new object filling in the simple attributes, but skipping any primary
	 * keys that are defined for the table.
	 *
	 * If desired, this method can also make copies of all associated (fkey referrers)
	 * objects.
	 *
	 * @param      boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row.
	 * @return     HrJobs Clone of current object.
	 * @throws     PropelException
	 */
	public function copy($deepCopy = false)
	{
		// we use get_class(), because this might be a subclass
		$clazz = get_class($this);
		$copyObj = new $clazz();
		$this->copyInto($copyObj, $deepCopy);
		return $copyObj;
	}

	/**
	 * Returns a peer instance associated with this om.
	 *
	 * Since Peer classes are not to have any instance attributes, this method returns the
	 * same instance for all member of this class. The method could therefore
	 * be static, but this would prevent one from overriding the behavior.
	 *
	 * @return     HrJobsPeer
	 */
	public function getPeer()
	{
		if (self::$peer === null) {
			self::$peer = new HrJobsPeer();
		}
		return self::$peer;
	}

} // BaseHrJobs
